package com.softao.ming.gde.core.launcher;


/**
 * Settings required to launch a GDE product.
 * <p>
 * Here is the definitions of the settings inside this class:
 * <ul>
 * <li>PlatformLocations: list of the locations where platform plug-ins located. The sub-folder <code>plugins</code> will be searched.</li>
 * <li>ProjectLocations: list of the locations where GDE projects are located. Each and every sub-folder will be considered as a project.</li>
 * <li>TargetElementType: type of the element to be launched. Currently, only "product" is supported.</li>
 * <li>TargetElementId: the id of the element to be executed.</li>
 * <li>ConfigurationLocations: the locations where the configuration files are located.</li>
 * <li>GwtInstallationLocation: the location where the GWT is installed.</li>
 * <li>OutputLocation: the location where the outputs will be generated.</li> 
 * </ul>
 * With these settings, GDE can launch an application.
 */
public class LauncherSettings {
	/** the type of product. */
	public static final String TYPE_PRODUCT = "product";
	
	private String[] mPlatformLocations;
	private String[] mProjectLocations;
	private final String mTargetElementType = TYPE_PRODUCT;
	private String mTargetElementId;
	private String[] mConfigurationLocations;
	private String mGwtInstallationLocation;
	private String mOutputLocation;
	
	/**
	 * In 1.0.0, only "product" supported.
	 * 
	 * @return the target element type
	 */
	public String getTargetElementType() {
		return mTargetElementType;
	}
	
	/**
	 * @return the targetElementId
	 */
	public String getTargetElementId() {
		return mTargetElementId;
	}
	
	/**
	 * @param targetElementId the targetElementId to set
	 */
	public void setTargetElementId(String targetElementId) {
		mTargetElementId = targetElementId;
	}
	
	/**
	 * @return the platformLocations
	 */
	public String[] getPlatformLocations() {
		return mPlatformLocations;
	}
	
	/**
	 * @param platformLocations the platformLocations to set
	 */
	public void setPlatformLocations(String[] platformLocations) {
		mPlatformLocations = platformLocations;
	}
	
	/**
	 * @return the configurationLocations
	 */
	public String[] getConfigurationLocations() {
		return mConfigurationLocations;
	}
	
	/**
	 * @param configurationLocations the configurationLocations to set
	 */
	public void setConfigurationLocations(String[] configurationLocations) {
		mConfigurationLocations = configurationLocations;
	}
	
	/**
	 * @return the gwtInstallationLocation
	 */
	public String getGwtInstallationLocation() {
		return mGwtInstallationLocation;
	}
	
	/**
	 * @param gwtInstallationLocation the gwtInstallationLocation to set
	 */
	public void setGwtInstallationLocation(String gwtInstallationLocation) {
		mGwtInstallationLocation = gwtInstallationLocation;
	}
	
	/**
	 * @return the projectLocations
	 */
	public String[] getProjectLocations() {
		return mProjectLocations;
	}
	
	/**
	 * @param projectLocations the projectLocations to set
	 */
	public void setProjectLocations(String[] projectLocations) {
		mProjectLocations = projectLocations;
	}
	
	/**
	 * @return the outputLocation
	 */
	public String getOutputLocation() {
		return mOutputLocation;
	}
	
	/**
	 * @param outputLocation the outputLocation to set
	 */
	public void setOutputLocation(String outputLocation) {
		mOutputLocation = outputLocation;
	}
}
